#include "SList.h"

void test1()
{
	SLTNode* phead=NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);



	SLTPophBack(&phead);
	SLTPophBack(&phead);
	SLTPophBack(&phead);
	SLTPrint(phead);
}


void test2()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);

	SLTPopFront(&phead);
	SLTPopFront(&phead);
	SLTPopFront(&phead);


	SLTPrint(phead);
}


void test3()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPrint(phead);

	SLTNode* p = SLTFind(phead, 3);
	printf("%d", p->data);

	SLTDestroy(&phead);
}

void test4()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPrint(phead);

	SLTNode* p = SLTFind(phead, 1);
	printf("%d\n", p->data);

	SLTErase(&phead, p);

	SLTPrint(phead);
	SLTDestroy(&phead);

}

void test5()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPrint(phead);

	SLTNode* p = SLTFind(phead, 1);
	printf("%d\n", p->data);
	SLTInsert(&phead, p, 5);

	SLTPrint(phead);
	SLTDestroy(&phead);
}

void test6()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPrint(phead);

	SLTNode* p = SLTFind(phead, 1);
	printf("%d\n", p->data);
	SLTInsertAfter(p, 5);

	SLTPrint(phead);
	SLTDestroy(&phead);
}

void test7()
{
	SLTNode* phead = NULL;
	SLTPushBack(&phead, 1);
	SLTPushBack(&phead, 2);
	SLTPushBack(&phead, 3);
	SLTPrint(phead);

	SLTNode* p = SLTFind(phead, 3);
	printf("%d\n", p->data);
	SLTEraseAfter(p);

	SLTPrint(phead);
	SLTDestroy(&phead);
}
int main()
{
	test7();
	return 0;
}